// 引入
const express = require('express')
// 创建实例
const app = express()
// 创建路由规则
app.get('/serve',(request,response)=>{
    // 设置响应头   设置可以跨域
    response.setHeader('Access-Control-Allow-Origin','*')
    // 设置响应体
    response.send('HELLO AJAX')
})

app.post('/serve',(request,response)=>{
    // 设置响应头   设置可以跨域
    response.setHeader('Access-Control-Allow-Origin','*')
    // 设置响应体
    response.send('HELLO AJAX POST')
})

// all 表示可以处理所有的请求方式
app.all('/json-serve',(request,response)=>{
    // 设置响应头   设置可以跨域
    response.setHeader('Access-Control-Allow-Origin','*')

    const data = {
        uname : '张三',
        age : 28,
        sex : '男' 
    }
    const str = JSON.stringify(data)

    // 设置响应体
    response.send(str)
})

// IE 缓存问题
app.get('/ie',(request,response)=>{
    // 设置响应头   设置可以跨域
    response.setHeader('Access-Control-Allow-Origin','*')
    // 设置响应体
    response.send('HELLO IE')
})

// 超时操作
app.get('/delay',(request,response)=>{
    // 设置响应头   设置可以跨域
    response.setHeader('Access-Control-Allow-Origin','*')
    // 设置响应体
    setTimeout(function(){
        response.send('延时响应')
    },3000)
})

// jquery
app.all('/jquery',(request,response)=>{
    // 设置响应头   设置可以跨域
    response.setHeader('Access-Control-Allow-Origin','*')
   
    // 响应数据
    const data = {
        uname : '张三',
        age : 20
    }
    response.send(JSON.stringify(data))
})

// fetch 服务
app.all('/fetch',(request,response)=>{
    // 设置响应头   设置可以跨域
    response.setHeader('Access-Control-Allow-Origin','*')  // 可以任意的源网站
    response.setHeader('Access-Control-Allow-Headers','*') // 可以添加任意的请求头，可以自己设置
    response.setHeader('Access-Control-Allow-Method','*')  // 可以是任意的方法，可以自己设置
    // response.setHeader('Access-Control-Allow-Origin','http://localhost:8000')  // 设置特定的源网站
   
    // 响应数据
    const data = {
        uname : '张三',
        age : 20
    }
    response.send(JSON.stringify(data))
})

// 监听端口
app.listen(8000,()=>{
    console.log('服务器已经开启，正监听8000端口...');
})

